跳到主要内容

5. SPI

5.1 简介

  • SPI 全称为串行外设接口(Serial Peripheral Interface),其是一种高速的,全双工,同步通信总线。

  • 它以主从方式工作,这种模式通常一个主设备对应一个或多个从设备,双向数据传输时需要4根线,单向数据传输时可以裁切为3根线。

  • SPI 总线本身由四个物理连接组成:两条数据线,一条时钟线和从选择线。

    • MOSI(主机输出/从机输入) – Core3566将数据发送到设备(传感器)的线路。

    • MISO(主机输入/从机输出) – 设备将数据发送到 Core3566 的线路。

    • SCLK(时钟) –时钟信号线。

    • SS / CS(从站选择/芯片选择) –用于选择向其发送数据的设备的线路。

  • Core3566 有两个 SPI 接口,分别是 SPI1 和 SPI3。

5.2 开启 SPI 接口

  • 打开方法与 I2C 类似,选择SPI即可。

    ┌────────────┤ luckfox Software Configuration Tool (luckfox-config) ├────────────┐
    │ │
    │ P1 SPI1 Enable/disable automatic loading of SPI1 kernel module │
    │ P2 SPI3 Enable/disable automatic loading of SPI3 kernel module │
    │ │
    │ │
    │ │
    │ │
    │ │
    │ <Select> <Back> │
    │ │
    └────────────────────────────────────────────────────────────────────────────────┘
  • 使用 ls 指令查看是否开启成功:

    linaro@linaro-alip:~$ ls /dev/spi*
    /dev/spidev1.0 /dev/spidev1.1

5.3 硬件连接

  • Core3566 连接引脚对应关系:

    1.5inch OLED ModuleCore3566Board物理引脚序号功能
    VCC3V3电源输入
    GNDGND电源地
    DINSPI1_MOSI主机输出/从机输入
    CLKSPI1_CLKSPI时钟信号
    CSSPI1_CS0片选
    DCGPIO3_A3数据/命令选择
    RSTGPIO3_C4复位
  • 接线图

5.4 使用 Python 程序控制

  • 下载实验例程,在终端运行程序:

    cd ~/OLED_1in5/
    sudo python3 OLED_1in5_spi.py